package com.corhyfar.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.corhyfar.beans.PresupuestoDTO;
import com.corhyfar.dao.PresupuestoDAO;
import com.corhyfar.util.SQLConnection;

public class PresupuestoDaoimpl implements PresupuestoDAO {
	
	
	Connection cn = null;
	PreparedStatement ps = null;
	ResultSet rs = null;
	
	public List<PresupuestoDTO> listarPresupuestos() throws SQLException {
		cn = new SQLConnection().GetConnection();
		String sql = "select * from Presupuesto";
		ps = cn.prepareStatement(sql);
		rs = ps.executeQuery();
		List<PresupuestoDTO> lista = new ArrayList<PresupuestoDTO>();
		while (rs.next()) {

			lista.add(new PresupuestoDTO(rs.getInt(0), rs.getInt(1), rs.getInt(2), rs.getInt(3), rs.getInt(4), rs.getDouble(5), rs.getInt(6)));

		}
		ps.close();
		cn.close();
		return lista;
	
	}
	


	
	@Override
	public void actualizaPresupuesto(int codigoPres, int codigoCli, int codigoObra, int codigoMaterial, int cantMatePre,
									double costoMatePre, int cantTrabPre) throws SQLException {

		cn = new SQLConnection().GetConnection();
		String sql = "update Presupuesto set COD_PRE =?,COD_CLI=? ,COD_OBRA =?,COD_MATE =?,CANT_MATE_PRE =?," +
				"		COSTO_TOTAL_MATE_PRE =?,CANT_TRAB_PR=?";
		ps = cn.prepareStatement(sql);
		ps.setInt(1, codigoPres);
		ps.setInt(2, codigoCli);
		ps.setInt(3, codigoObra);
		ps.setInt(4, codigoMaterial);
		ps.setInt(5, cantMatePre);
		ps.setDouble(6, costoMatePre);
		ps.setInt(7, cantTrabPre);
		int rst = ps.executeUpdate();
		
		if(rst>0){
			System.out.println("Presupuesto Modificado");
		}
		ps.close();
		cn.close();
		
		

	}




	@Override
	public void ingresaPresupuesto(PresupuestoDTO presupuestoDTO) {
		
		try {
			cn = new SQLConnection().GetConnection();
			String sql="insert into Presupuesto values (?,?,?,?,?,?,?)";
			ps = cn.prepareStatement(sql);
			ps.setInt(1, presupuestoDTO.getCodigoPres());
			ps.setInt(2, presupuestoDTO.getCodigoCli());
			ps.setInt(3, presupuestoDTO.getCodigoObra());
			ps.setInt(4, presupuestoDTO.getCodigoMaterial());
			ps.setInt(5, presupuestoDTO.getCantMatePre());
			ps.setDouble(6,presupuestoDTO.getCostoMatePre());
			ps.setInt(7,presupuestoDTO.getCantMatePre());
			
			
			int rst = ps.executeUpdate();
			ps.close();
			cn.close();
			
			System.out.println("Presupuesto registrado");
		
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		
	}


}
